package com.atguigu.bigdata.scala.chapter05

object Scala13_Function {

    def main(args: Array[String]): Unit = {

        // TODO 函数式编程 - 递归
        // 普通递归
        def test(): Unit = {
            test()
            println("....")
        }
        // 尾递归 - 在递归逻辑的最后调用自身，那么压栈的同时就可以弹栈
        // 因为尾递归的这种特性，所以scala语言对语法进行了优化，编译为while的死循环
        // java中也有尾递归，尾递归是一种代码的编程方式，但是java是没有优化，所以依然有问题。
        // 只是性能会优于普通递归
        def test1(): Unit = {
            println("....")
            test1()
        }
        //test()
        test1()

    }
}
